﻿//
// IScorBotScriptAsyncContract.cs
//
// Authors:
//    Claus Jørgensen <10229@iha.dk>
//
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics.Contracts;

namespace RSD.Scripting.Contracts
{
#pragma warning disable 67

    [ContractClassFor(typeof(IScorBotScriptAsync))]
    internal abstract class IScorBotScriptAsyncContract : IScorBotScriptAsync
    {
        #region IScorBotScriptAsync Members

        public void ExecuteScriptAsync(string script, Action<ScorBotScriptException> callback = null)
        {
            Contract.Requires(!string.IsNullOrEmpty(script));
        }

        public void ExecuteScriptAsync(System.IO.TextReader reader, Action<ScorBotScriptException> callback = null)
        {
            Contract.Requires(reader != null);
        }

        public void CheckScriptAsync(string script, Action<ScorBotScriptException> callback = null)
        {
            Contract.Requires(!string.IsNullOrEmpty(script));
        }

        public void CheckScriptAsync(System.IO.TextReader reader, Action<ScorBotScriptException> callback = null)
        {
            Contract.Requires(reader != null);
        }

        #endregion
    }

#pragma warning restore 67
}
